Skip to content

for 语句

for 语句示例

示例程序:输出 1-10 的平方数。

python
for i in range(1,11):
	print(i, i*i)

for 语句一般形式

python
for {variable} in {sequence}:
	{statements}
  • {sequence}是一组的序列的意思,在示例程序中,range(1,11)会生成[1,2,3,4,5,6,7,8,9,10]这一组序列
  • {variable}是存储序列中的元素的变量,在示例程序中,就会分别存储 1,2,3,4,5,6,7,8,9,10
  • {statements}就是要重复执行的代码

循环结构

py
for i in range(1,4):
	print(i+1,end=' ')

程序会输出

[0/1]

列表

py
for i in [1,2,3]:
	print(i,end=' ')

程序会输出

[0/1]

不用 for 也可以

不用 for 也可以,因为 for 语句只是实现了代码片段的重复执行,例如以下示例程序对比了用 for 和不用 for 的区别。

python
for i in range(1,11):
	print(i, i*i)
python
print(1, 1*1)
print(2, 2*2)
print(3, 3*3)
print(4, 4*4)
print(5, 5*5)
print(6, 6*6)
print(7, 7*7)
print(8, 8*8)
print(9, 9*9)
print(10, 10*10)

所以,虽然不用 for 也可以,但是能用 for 的情况下,肯定会用 for。

range 函数

range 函数是 for 的最佳拍档,因为它可以按照我们的需求去生成一组序列,而不用手动创建序列。

python
for i in range(1,11):
	print(i, i*i)
python
for i in [1,2,3,4,5,6,7,8,9,10]:
	print(i, i*i)

range 函数的一般形式

range(start,end,step)

  • start 是开始点(可以不写,默认是 0)
  • end 是结束点(结束点是取不到的)
  • step 是步长(可以不写,默认是 1)

range 左开右闭

range 函数一定要记住左取右不取的原则,这是初学者最容易犯错的地方!

例如range(1,4),只能从 1 开始,取到 4 的前面一个,也就是 3,最终只能取到 1,2,3,而不能取到 4!

range 函数的应用非常灵活,()里可以的三个参数可以自由填写

  • range(10)会生成[0,1,2,3,4,5,6,7,8,9]这组序列。
  • range(1,10)会生成[1,2,3,4,5,6,7,8,9]这组序列。
  • range(1,10,2)会生成[1,3,5,7,9]这组序列。
  • range(2,10,2)会生成[2,4,6,8]这组序列。
python
#range生成的序列,转成列表list后才能输出,之后会讲到
print(list(range(10)))
print(list(range(1,10)))
print(list(range(1,10,2)))
print(list(range(2,10,2)))

循环结构

py
for i in range(3):
	print(i,end=' ')

程序会输出

[0/1]

循环结构

py
for i in range(1,3):
	print(i,end=' ')

程序会输出

[0/1]

循环结构

py
for i in range(1,9,2):
	print(i,end=' ')

程序会输出

[0/1]